﻿using System;
using System.Web;

namespace Solution
{
    public class LayoutViewModel
    {
        #region 字段

        public bool HasError => !string.IsNullOrEmpty(this.Error);

        #endregion 字段

        #region 公共属性

        public string Error
        {
            get; set;
        }

        public string Title
        {
            get; set;
        }

        #endregion 公共属性

        #region 公共方法

        public void Try(Action action)
        {
            try
            {
                action();
            }
            catch (Exception ex)
            {
                this.Error = (ex is ShowException) ? ex.Message : ExceptionExtension.GetAllMessages(ex);
            }
        }

        #endregion 公共方法

        #region 保护方法

        protected Guid GetUserId()
        {
            return Guid.Parse(HttpContext.Current.User.Identity.Name);
        }

        #endregion 保护方法
    }

    public class LayoutViewModel<T> : LayoutViewModel
    {
        #region 公共属性

        public T Model
        {
            get; set;
        }

        #endregion 公共属性
    }
}